#ifndef CONCRETE_PROTOTYPE_H
#define CONCRETE_PROTOTYPE_H

#include"prototype.h"
#include<iostream>
#include <string>
using namespace std;
class SunWuKong:public Monkey{

public:
    SunWuKong(string name):m_Name(name){}
    void SetName(const string &name)override{
        m_Name=name;
    }
    ~SunWuKong(){cout<<"SunWuKong xigou"<<endl;}
    SunWuKong(const SunWuKong&other):m_Name(other.m_Name){}
    Monkey * Clone()override{
        return new SunWuKong(*this);}
    void Play()override{
        cout<<m_Name<<" play Golden-Hoop-Stick "<<endl;
    }
private:
    string m_Name;

};

#endif // CONCRETE_PROTOTYPE_H
